package com.haoze.nurse.service;

import com.haoze.common.response.Result;
import com.haoze.nurse.vo.DoctorAdvicesVO;
import com.haoze.nurse.vo.EmrFile;

public interface FileIndexService {

    /**
     * 单选类型
     */
    String TYPE_SIGNLE_SELECTION = "6";
    /**
     * 多选类型
     */
    String TYPE_MULTIPLE_SELECTION = "7";
    /**
     * 一个住院号只能生成一份病历
     */
    String ONLY_ONE = "0";

    int MAX_ROWS = 20;
    /**
     * 修正诊断 VAR_CODE
     */
    String XIUZHENGZHENDUAN = "xiuzhengzhenduan";
    /**
     * 入院诊断 VAR_CODE
     */
    String RUYUANZHENDUAN = "ruyuanzhenduan";
    /**
     * 初步诊断 VAR_CODE
     */
    String CHUBUZHENDUAN = "chubuzhenduan";
    /**
     * 上级医师签名 VAR_CODE
     */
    String SHANGJIYISHIQIANMING = "shangjiyishiqianming";
    /**
     * 医师签名 varCode
     */
    String YISHIQIANMING = "yishiqianming";
    /**
     * 签名规则varCode
     */
    String QMGZ = "qmgz";

    /**
     * 签名规则 1:医师签名只能本人
     */
    String QMGZ_FIRST = "1";
    /**
     * 不删除
     */
    String NOT_DELETE = "0";

    /**
     * 文件状态 新建
     */
    String FILE_STATUS_INIT = "0";
    /**
     * 文件状态 已提交
     */
    String FILE_STATUS_COMMIT = "1";
    /**
     * 文件状态 已删除
     */
    String FILE_STATUS_DELETE = "6";
    /**
     * 是首程标志
     */
    String IS_DUR_DIS = "1";
    /**
     * 不是首程标志
     */
    String NOT_DUR_DIS = "0";
    /**
     * 入院病程
     */
    String EMR_TYPE_RUYUANBINGCHENG = "301";
    /**
     * 首次病程
     */
    String EMR_TYPE_SHOUCIBINGCHENG = "201";

    String FEMALE = "女性";

    /**
     * 上级医师签名日期时间
     */
    String SHANGJIYISHIQIANMINGRIQISHIJIAN = "shangjiyishiqianmingriqishijian";

    /**
     * 上级医师签名职称 varCode
     */
    String sjysqmzc = "sjysqmzc";

    /**
     * 上级医师查房
     */
    String EMR_TYPE_SHANGJIYISHICHAFANG = "206";

    /**
     * 出院病程
     */
    String EMR_TYPE_ZHURENYISHICHAFANG = "217";

    /**
     * 出院记录
     */
    String EMR_TYPE_CHUYUANJILU = "401";

    /**
     * 医师签名时间
     */
    String YISHIQIANMINGSHIJIAN = "ysqmsj";

    /**
     * 患者或患儿 VAR_CODE
     */
    String HUANZHEHUOHUANER = "huanzhehuohuaner";

    /**
     * 婚姻史、月经史 VAR_CODE
     */
    String HUNYINYUYUEYING = "hunyinyuyuejing";

    String EMR_MEDICAL_ADMIN="医疗术语管理角色";//书写生成医疗术语无需审核

    String ELEMENT_TYPE_THREE="3";//日期类型

    /**
     *  术后手术者（上级医师）查房记录
     */
    String EMR_TYPE_SHSHZCFJL = "225";

    /**
     *  术后上级医师查房记录
     */
    String EMR_TYPE_SHSJYSCFJL = "226";

    /**
     * 手术记录
     */
    String EMR_TYPE_SHOUSHUJILU = "701";

    /**
     * 术前小结
     */
    String EMR_TYPE_SHUQIANXIAOJIE = "702";

    /**
     * 危急值处理
     */
    String EMR_TYPE_WEIJIZHICHULI = "203";

    /**
     * 出院病程
     */
    String EMR_TYPE_CHUYUANBINGCHENG = "217";

    /**
     * 外科住院患者VTE风险与预防评估表(Caprini)
     *  902
     */
    String EMR_TYPE_CAPRINI = "901";

    /**
     * 内科住院患者VTE风险与预防评估表(Padua)
     */
    String EMR_TYPE_PADUA = "902";

    /**
     * 首次病程目录标志
     */
    String RECORD_TYPE = "1";
    String PROFILE_DEV = "dev";
    String MB_WB = "mbwb";
    String TL_JL = "tljl";
    String SPECIAL_SPLITER = "\\$€\\$€\\$";

    String WENJIANTAITOU_RQSJ = "wenjiantaitou-rqsj";

    String WENJIANTAITOU = "wenjiantaitou";
    String CK_RSFXDJ = "ck_rsfxdj";
    String CHUYUANZHENDUAN = "chuyuanzhenduan";
    String PATIENT_FLAG_ARCHIVE = "2";

    /**
     * 新增病历
     * @param tplId    模板ID
     * @param inpatNum 住院号
     * @param deptId
     * @param reqNum    电子申请单号
     * @param serialNo
     * @return
     */
    Result createFileIndex(String tplId, String inpatNum, String deptId, String reqNum, String serialNo);

    /**
     * 保存病历
     * @param emrFile
     * @return
     */
    Result saveFileIndex(EmrFile emrFile);

    /**
     * 获取病历
     * @param emrFileId
     * @return
     */
    EmrFile getFileIndex(String emrFileId,String showINOUT);

    /**
     * 删除病历
     * @param emrFileId
     * @return
     */
    Result deleteFileIndex(String emrFileId);

    /**
     * 恢复病历
     * @param emrFileId
     * @return
     */
    Result recoveryFileIndex(String emrFileId);

    /**
     * 获取病历修改痕迹
     * @param emrFileId
     * @return
     */
    Result getChanges(String emrFileId);


    Result getListHead(String emrFileId);


    Result getDetailList(String tplId, String inpatNum, String strTm, String endTm, Integer page, Integer pageSize,String isDesc);

    Result getNurseFileTree(String inpatNum);

    Result getTplDetail(String tplDetailId,String tplId);

    Result getRealize(String inpatNum,String tplId);

    /**
     * 获取医嘱列表
     * @param inpatNum
     * @param classId
     * @param type
     * @param status
     * @param startDate
     * @param endDate
     * @param page
     * @param size
     * @return
     */
    DoctorAdvicesVO queryOrders(String inpatNum, String classId, String type, String status, String startDate, String endDate, Integer page, Integer size);

    Result getEmrFileId(String inpatNum);
}
